import axios from 'axios';
import { getActiveAIConfig } from '../config/ai';

/**
 * 与 AI 服务通信的服务类
 */
export class AIService {
  /**
   * 根据指令修改 HTML 代码
   * @param htmlCode 原始HTML代码
   * @param prompt 用户指令
   * @returns 修改后的HTML代码
   */
  static async modifyHtml(htmlCode: string, prompt: string): Promise<string> {
    try {
      const config = getActiveAIConfig();
      
      const fullPrompt = `
我有以下HTML代码，请根据我的指令修改它：

\`\`\`html
${htmlCode}
\`\`\`

我的指令是: ${prompt}

请直接返回完整修改后的HTML代码，不需要任何解释。只返回代码本身，不要使用markdown格式或代码块。
`;

      const response = await axios.post(
        config.apiEndpoint,
        {
          model: config.model,
          messages: [
            { role: 'system', content: '你是一个专业的前端开发助手，擅长修改HTML代码。' },
            { role: 'user', content: fullPrompt }
          ],
          max_tokens: config.maxTokens,
          temperature: config.temperature,
        },
        {
          headers: {
            'Content-Type': 'application/json',
            'Authorization': `Bearer ${config.apiKey}`
          }
        }
      );

      // 提取AI返回的HTML内容
      return response.data.choices[0].message.content.trim();
    } catch (error: any) {
      console.error('AI API 错误:', error);
      throw new Error(error.response?.data?.error?.message || error.message);
    }
  }
} 